using SharpObjects.Interfaces;

namespace SharpObjects.Instantiation.Services
{
    public interface IServiceDescriptor
    {
        string ServiceId { get; set; }
        string ServiceVersion { get; set; }
        ITypeDescriptor TypeDescriptor { get; set; }
        bool IsSingleton { get; set; }
        bool PreInstantiate { get; set; }
        string[] PreInstantiateVersions { get; set; }
        object SingletonInstance { get; set; }

        IServiceDescriptor Clone();
    }
}